# -*- coding: utf-8 -*-

import urllib.parse as urlparse



iTDs = {
    "com":0,"top":0,"biz":0,#（用于商业公司）
    "net":0,"info":0,#（用于网络服务）
    "org":0,#（用于组织协会等）
    "gov":0,#（用于政府部门）
    "edu":0,#（用于教育机构）
    "mil":0,#（用于军事领域）
    "int":0,#（用于国际组织）
    "aero":0,#航空运输业专用，由比利时国际航空通信技术协会（SITA）负责
    "coop":0,#商业合作社专用，由位于华盛顿的美国全国合作商业协会（NCBA）负责管理
    "museum":0,#博物馆专用，由博物馆域名管理协会（MDMA）监督
    "name":0,#是个人网站的专用域名，由英国的“环球姓名注册”（GlobeNameRegistry）负责 \
    "pro":0#医生和律师等职业专用，监督机构是爱尔兰都柏林的一家网络域名公司“职业注册”（RegistryPro）
}

class UrlParser:
    address_string=""
    split_string=[]

    names = []
    domains = []

    def __init__(self,url):

        url = urlparse.unquote(url)
        url = url.strip().lower()
        if url.startswith('http') == False:
            url = "http://" + url
        url_parts = urlparse.urlparse(url)
        netloc = url_parts.netloc
        u =  netloc.split(':')[0]

        u = UrlParser.remove_www(u)
        self.address_string = u
        self.names = UrlParser.parser_path(url_parts.path)
        self.domains = []
        self.get_feature()

    @staticmethod
    def valid_word(w):
        if w == "":
            return False

        for i in w:
            if i.isdigit() == True:
                return False
        return True

    @staticmethod
    def parser_path(_path):
        paths = []
        paths = _path.split('.')
        paths = paths[0]
        paths = paths.split('/')
        ret = []
        for p in paths:
            if UrlParser.valid_word(p):
                ret.append(p)
        ret.reverse()
        return ret



    @staticmethod
    def remove_www(_address):
        if _address.startswith('www.'):
            _address = _address[4:]
        return _address

    def get_feature(self):
        self.split_string = self.address_string.split('.')
        if self.split_string[-1] in iTDs.keys():
            self.domains.append(self.split_string[-1])
            self.names.extend(self.split_string[:-1])
        else:
            self.domains.extend(self.split_string[-2:])
            self.names.extend(self.split_string[:-2])


if __name__ == '__main__':
    p = UrlParser("http://dict.youdao.com/w/eng/%E7%9B%B4%E8%86%9D%E7%A1%AC%E4%B8%BE/")
    print(p.domains)
    print(p.names)

    p = UrlParser("http://tieba.baidu.com/f?kw=%E5%BF%AB%E9%A4%90")
    print(p.domains)
    print(p.names)

    p = UrlParser("www.t.6.r.r.t.google.com.cn/news/sports/tennis.html?key=1&b=3")
    print(p.domains)
    print(p.names)

    p = UrlParser("http://kr5.samsung.net/portal/desktop/main.do")
    print(p.domains)
    print(p.names)

    p = UrlParser("http://benefit.fesco.com.cn/MyAccount/hhh/545/ff56hgg/MasterPage?UrlTo=MyOrderList")
    print(p.domains)
    print(p.names)